home *** CD-ROM | disk | FTP | other *** search
- unit UnitFrameResultSetBase;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- UnitObjectResultSetBase, Menus, Grids, DBGrids, Db, ImgList, ActnList,
- UnitFormBase;
-
- type
- TFrameResultSetBase = class(TFrame)
- ActionListFrameResultSetBase: TActionList;
- ActionFrameResultSetBaseOpen: TAction;
- ImageListFrameResultSetBase: TImageList;
- DataSourceFrameResultSetBase: TDataSource;
- DBGridFrameResultSetBase: TDBGrid;
- PopupMenuFrameResultSetBase: TPopupMenu;
- Open1: TMenuItem;
- procedure DBGridFrameResultSetBaseTitleClick(Column: TColumn);
- procedure ActionFrameResultSetBaseOpenUpdate(Sender: TObject);
- procedure DBGridFrameResultSetBaseColumnMoved(Sender: TObject;
- FromIndex, ToIndex: Integer);
- procedure ActionFrameResultSetBaseOpenExecute(Sender: TObject);
- private
- FMovingColumn: boolean;
-
- FResultSetObject: TObjectResultSetBase;
-
- procedure SetResultSetObject(aResultSetObject: TObjectResultSetBase);
- protected
- function GetClassOfFormToBeOpened: TFormBaseClass; virtual;
- function GetResultSetClass: TObjectResultSetClass; virtual; abstract;
- public
- constructor Create(Owner: TComponent); override;
- destructor Destroy; override;
- property ResultSetObject: TObjectResultSetBase read FResultSetObject write SetResultSetObject;
- procedure OpenEntityForm;
- end;
-
- implementation
-
- {$R *.DFM}
-
- { TFrameResultSetBase }
-
- procedure TFrameResultSetBase.SetResultSetObject(
- aResultSetObject: TObjectResultSetBase);
- begin
- if (ResultSetObject <> aResultSetObject) then begin
- FResultSetObject := aResultSetObject;
- if (ResultSetObject = NIL) then
- DataSourceFrameResultSetBase.DataSet := NIL
- else
- DataSourceFrameResultSetBase.DataSet := ResultSetObject.Query;
- end; // then begin
- end;
-
- procedure TFrameResultSetBase.DBGridFrameResultSetBaseColumnMoved(
- Sender: TObject; FromIndex, ToIndex: Integer);
- begin
- FMovingColumn := TRUE;
- end;
-
- procedure TFrameResultSetBase.DBGridFrameResultSetBaseTitleClick(Column: TColumn);
- begin
- inherited;
- if not(FMovingColumn) then begin
- ResultSetObject.SqlOrderByClause := Column.Field.FieldName;
- ResultSetObject.RefreshResultSet;
- end;
- FMovingColumn := FALSE;
- end;
-
- procedure TFrameResultSetBase.ActionFrameResultSetBaseOpenUpdate(
- Sender: TObject);
- begin
- ActionFrameResultSetBaseOpen.Enabled := not ResultSetObject.IsEmpty;
- end;
-
- function TFrameResultSetBase.GetClassOfFormToBeOpened: TFormBaseClass;
- begin
- Result := NIL;
- end;
-
- constructor TFrameResultSetBase.Create;
- begin
- inherited;
- ResultSetObject := GetResultSetClass.FetchReference(Self, TFormBase.NewInteger) as TObjectResultSetBase;
- end;
-
- destructor TFrameResultSetBase.Destroy;
- begin
- ResultSetObject.FreeReference(Self);
- ResultSetObject := NIL;
- inherited;
- end;
-
- procedure TFrameResultSetBase.ActionFrameResultSetBaseOpenExecute(
- Sender: TObject);
- begin
- OpenEntityForm;
- end;
-
- procedure TFrameResultSetBase.OpenEntityForm;
- begin
- if (GetClassOfFormToBeOpened <> NIL) then
- GetClassOfFormToBeOpened.FetchForm(ResultSetObject.SelectedKey).ShowForm;
- end;
-
- end.
-